home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1995-08-10 | 23.7 KB | 657 lines | [ TEXT/MPS ]
(* File: CMICCProfile.mod Contains: Definitions for ColorSync 2.0 profile Version: Technology: ColorSync 2.0 Package: Universal Interfaces 2.1ß1 in “MPW Prerelease” on ETO #17 Copyright: © 1984-1995 by Apple Computer, Inc. All rights reserved. Bugs?: If you find a problem with this file, use the Apple Bug Reporter stack. Include the file and version information (from above) in the problem description and send to: Internet: apple.bugs.applelink.apple.com AppleLink: APPLE.BUGS *) (*$IF UNDEFINED OLDROUTINENAMES*) (*$SET OLDROUTINENAMES FALSE*) (*$END*) (*$TAGS-*) (*$CALLING PASCAL*) MODULE CMICCProfile; IMPORT SYSTEM, Types; (* $PUSH*) (* $ALIGN MAC68K*) (* $LibExport+*) CONST cmCS2ProfileVersion* = $02000000; (* Current Major version number *) cmCurrentProfileMajorVersion* = $02000000; (* magic cookie number for anonymous file AIFF.ID *) cmMagicNumber* = LONG("acsp"); (* ColorSync profile version 1.0 *) cmCS1ProfileVersion* = $00000100; (************************************************************************) (*************** ColorSync 2.0 profile specification ********************) (************************************************************************) (* profile flags element values *) cmEmbeddedProfile* = 0; (* 0 is not embedded profile, 1 is embedded profile *) cmEmbeddedUse* = 1; (* 0 is to use anywhere, 1 is to use as embedded profile only *) (* data type element values *) cmAsciiData* = 0; cmBinaryData* = 1; (* rendering intent element values *) cmPerceptual* = 0; (* Photographic images *) cmRelativeColorimetric* = 1; (* Logo Colors *) cmSaturation* = 2; (* Business graphics *) cmAbsoluteColorimetric* = 3; (* Logo Colors *) (* speed and quality flag options *) cmNormalMode* = 0; (* it uses the least significent two bits in the high word of flag *) cmDraftMode* = 1; (* it should be evaulated like this: right shift 16 bits first, mask off the *) cmBestMode* = 2; (* high 14 bits, and then compare with the enum to determine the option value *) (* device/media attributes element values *) cmReflective* = 0; (* 0 is reflective media, 1 is transparency media *) cmGlossy* = 1; (* 0 is glossy, 1 is matte *) (* screen encodings *) cmPrtrDefaultScreens* = 0; (* Use printer default screens. 0 is false, 1 is ture *) cmLinesPer* = 1; (* 0 is LinesPerCm, 1 is LinesPerInch *) (* 2.0 tag type information *) cmNumHeaderElements* = 10; (* public tags *) cmAToB0Tag* = LONG("A2B0"); cmAToB1Tag* = LONG("A2B1"); cmAToB2Tag* = LONG("A2B2"); cmBlueColorantTag* = LONG("bXYZ"); cmBlueTRCTag* = LONG("bTRC"); cmBToA0Tag* = LONG("B2A0"); cmBToA1Tag* = LONG("B2A1"); cmBToA2Tag* = LONG("B2A2"); cmCalibrationDateTimeTag* = LONG("calt"); cmCharTargetTag* = LONG("targ"); cmCopyrightTag* = LONG("cprt"); cmDeviceMfgDescTag* = LONG("dmnd"); cmDeviceModelDescTag* = LONG("dmdd"); cmGamutTag* = LONG("gamt"); cmGrayTRCTag* = LONG("kTRC"); cmGreenColorantTag* = LONG("gXYZ"); cmGreenTRCTag* = LONG("gTRC"); cmLuminanceTag* = LONG("lumi"); cmMeasurementTag* = LONG("meas"); cmMediaBlackPointTag* = LONG("bkpt"); cmMediaWhitePointTag* = LONG("wtpt"); cmNamedColorTag* = LONG("ncol"); cmPreview0Tag* = LONG("pre0"); cmPreview1Tag* = LONG("pre1"); cmPreview2Tag* = LONG("pre2"); cmProfileDescriptionTag* = LONG("desc"); cmProfileSequenceDescTag* = LONG("pseq"); cmPS2CRD0Tag* = LONG("psd0"); cmPS2CRD1Tag* = LONG("psd1"); cmPS2CRD2Tag* = LONG("psd2"); cmPS2CRD3Tag* = LONG("psd3"); cmPS2CSATag* = LONG("ps2s"); cmPS2RenderingIntentTag* = LONG("ps2i"); cmRedColorantTag* = LONG("rXYZ"); cmRedTRCTag* = LONG("rTRC"); cmScreeningDescTag* = LONG("scrd"); cmScreeningTag* = LONG("scrn"); cmTechnologyTag* = LONG("tech"); cmUcrBgTag* = LONG("bfd "); cmViewingConditionsDescTag* = LONG("vued"); cmViewingConditionsTag* = LONG("view"); (* custom tags *) cmPS2CRDVMSizeTag* = LONG("psvm"); (* technology tag descriptions *) cmTechnologyFilmScanner* = LONG("fscn"); cmTechnologyReflectiveScanner* = LONG("rscn"); cmTechnologyInkJetPrinter* = LONG("ijet"); cmTechnologyThermalWaxPrinter* = LONG("twax"); cmTechnologyElectrophotographicPrinter* = LONG("epho"); cmTechnologyElectrostaticPrinter* = LONG("esta"); cmTechnologyDyeSublimationPrinter* = LONG("dsub"); cmTechnologyPhotographicPaperPrinter* = LONG("rpho"); cmTechnologyFilmWriter* = LONG("fprn"); cmTechnologyVideoMonitor* = LONG("vidm"); cmTechnologyVideoCamera* = LONG("vidc"); cmTechnologyProjectionTelevision* = LONG("pjtv"); cmTechnologyCRTDisplay* = LONG("CRT "); cmTechnologyPMDisplay* = LONG("PMD "); cmTechnologyAMDisplay* = LONG("AMD "); cmTechnologyPhotoCD* = LONG("KPCD"); cmTechnologyPhotoImageSetter* = LONG("imgs"); cmTechnologyGravure* = LONG("grav"); cmTechnologyOffsetLithography* = LONG("offs"); cmTechnologySilkscreen* = LONG("silk"); cmTechnologyFlexography* = LONG("flex"); (* type signatures *) cmSigCurveType* = LONG("curv"); cmSigDataType* = LONG("data"); cmSigDateTimeType* = LONG("dtim"); cmSigLut16Type* = LONG("mft2"); cmSigLut8Type* = LONG("mft1"); cmSigMeasurementType* = LONG("meas"); cmSigNamedColorType* = LONG("ncol"); cmSigProfileDescriptionType* = LONG("desc"); cmSigScreeningType* = LONG("scrn"); cmSigS15Fixed16Type* = LONG("sf32"); cmSigSignatureType* = LONG("sig "); cmSigTextType* = LONG("text"); cmSigU16Fixed16Type* = LONG("uf32"); cmSigU1Fixed15Type* = LONG("uf16"); cmSigUInt32Type* = LONG("ui32"); cmSigUInt64Type* = LONG("ui64"); cmSigUInt8Type* = LONG("ui08"); cmSigViewingConditionsType* = LONG("view"); cmSigXYZType* = LONG("XYZ "); (* Measurement type encodings *) (* Measurement Flare *) cmFlare0* = $00000000; cmFlare100* = $00000001; (* Measurement Geometry *) cmGeometryUnknown* = $00000000; cmGeometry045or450* = $00000001; cmGeometry0dord0* = $00000002; (* Standard Observer *) cmStdobsUnknown* = $00000000; cmStdobs1931TwoDegrees* = $00000001; cmStdobs1964TenDegrees* = $00000002; (* Standard Illuminant *) cmIlluminantUnknown* = $00000000; cmIlluminantD50* = $00000001; cmIlluminantD65* = $00000002; cmIlluminantD93* = $00000003; cmIlluminantF2* = $00000004; cmIlluminantD55* = $00000005; cmIlluminantA* = $00000006; cmIlluminantEquiPower* = $00000007; cmIlluminantF8* = $00000008; (* Spot Function Value *) cmSpotFunctionUnknown* = 0; cmSpotFunctionDefault* = 1; cmSpotFunctionRound* = 2; cmSpotFunctionDiamond* = 3; cmSpotFunctionEllipse* = 4; cmSpotFunctionLine* = 5; cmSpotFunctionSquare* = 6; cmSpotFunctionCross* = 7; (* Color Space Signatures *) cmXYZData* = LONG("XYZ "); cmLabData* = LONG("Lab "); cmLuvData* = LONG("Luv "); cmYxyData* = LONG("Yxy "); cmRGBData* = LONG("RGB "); cmGrayData* = LONG("GRAY"); cmHSVData* = LONG("HSV "); cmHLSData* = LONG("HLS "); cmCMYKData* = LONG("CMYK"); cmCMYData* = LONG("CMY "); cmMCH5Data* = LONG("MCH5"); cmMCH6Data* = LONG("MCH6"); cmMCH7Data* = LONG("MCH7"); cmMCH8Data* = LONG("MCH8"); (* profileClass enumerations *) cmInputClass* = LONG("scnr"); cmDisplayClass* = LONG("mntr"); cmOutputClass* = LONG("prtr"); cmLinkClass* = LONG("link"); cmAbstractClass* = LONG("abst"); cmColorSpaceClass* = LONG("spac"); (* platform enumerations *) cmMacintosh* = LONG("APPL"); cmMicrosoft* = LONG("MSFT"); cmSolaris* = LONG("SUNW"); cmSiliconGraphics* = LONG("SGI "); cmTaligent* = LONG("TGNT"); (* ColorSync 1.0 elements *) cmCS1ChromTag* = LONG("chrm"); cmCS1TRCTag* = LONG("trc "); cmCS1NameTag* = LONG("name"); cmCS1CustTag* = LONG("cust"); (* General element data types *) TYPE CMDateTime* = RECORD year*: INTEGER; month*: INTEGER; dayOfTheMonth*: INTEGER; hours*: INTEGER; minutes*: INTEGER; seconds*: INTEGER; END; CMFixedXYZColor* = RECORD X*: Types.Fixed; Y*: Types.Fixed; Z*: Types.Fixed; END; CMXYZComponent* = INTEGER; CMXYZColor* = RECORD X*: CMXYZComponent; Y*: CMXYZComponent; Z*: CMXYZComponent; END; CM2Header* = RECORD size*: LONGINT; (* This is the total size of the Profile *) CMMType*: Types.OSType; (* CMM signature, Registered with CS2 consortium *) profileVersion*: LONGINT; (* Version of CMProfile format *) profileClass*: Types.OSType; (* input, display, output, devicelink, abstract, or color conversion profile type *) dataColorSpace*: Types.OSType; (* color space of data *) profileConnectionSpace*: Types.OSType; (* profile connection color space *) dateTime*: CMDateTime; (* date and time of profile creation *) CS2profileSignature*: Types.OSType; (* LONG("acsp") constant ColorSync 2.0 file AIFF.ID *) platform*: Types.OSType; (* primary profile platform, Registered with CS2 consortium *) flags*: LONGINT; (* profile flags *) deviceManufacturer*: Types.OSType; (* Registered with CS2 consortium *) deviceModel*: LONGINT; (* Registered with CS2 consortium *) deviceAttributes*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF LONGINT; (* Attributes like paper type *) renderingIntent*: LONGINT; (* preferred rendering intent of tagged object *) white*: CMFixedXYZColor; (* profile illuminant *) reserved*: ARRAY 48 (*ΔΔ[0..47]ΔΔ*) OF CHAR; (* reserved for future use *) END; CMTagRecord* = RECORD tag*: Types.OSType; (* Registered with CS2 consortium *) elementOffset*: LONGINT; (* Relative to start of CMProfile *) elementSize*: LONGINT; END; CMTagElemTable* = RECORD count*: LONGINT; tagList*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CMTagRecord; (* Variable size *) END; (* External 0x02002001 CMProfile *) CM2Profile* = RECORD header*: CM2Header; tagTable*: CMTagElemTable; elemData*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR; (* Tagged element storage. Variable size *) END; CM2ProfilePtr* = POINTER TO CM2Profile; CM2ProfileHandle* = HANDLE TO CM2Profile (*ΔΔ POINTER TO CM2ProfilePtr*); (* Tag Type Definitions *) CMCurveType* = RECORD typeDescriptor*: Types.OSType; (* LONG("curv") *) reserved*: LONGINT; (* fill with 0x00 *) countValue*: LONGINT; (* number of entries in table that follows *) data*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Tagged element storage. Variable size *) END; CMDataType* = RECORD typeDescriptor*: Types.OSType; (* LONG("data") *) reserved*: LONGINT; (* fill with 0x00 *) dataFlag*: LONGINT; (* 0* = ASCII, 1* = binary *) data*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR; (* Tagged element storage. Variable size *) END; CMDateTimeType* = RECORD typeDescriptor*: Types.OSType; (* LONG("dtim") *) reserved*: LONGINT; dateTime*: CMDateTime; END; CMLut16Type* = RECORD typeDescriptor*: Types.OSType; (* LONG("mft2") *) reserved*: LONGINT; (* fill with 0x00 *) inputChannels*: Types.SInt8; (* unsigned char *) (* Number of input channels *) outputChannels*: Types.SInt8; (* unsigned char *) (* Number of output channels *) gridPoints*: Types.SInt8; (* unsigned char *) (* Number of clutTable grid points *) reserved2*: Types.SInt8; (* unsigned char *) (* fill with 0x00 *) matrix*: ARRAY 3,3 (*ΔΔ[0..2,0..2]ΔΔ*) OF Types.Fixed; (* *) inputTableEntries*: INTEGER; (* *) outputTableEntries*: INTEGER; (* *) inputTable*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Variable size *) CLUT*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Variable size *) outputTable*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Variable size *) END; CMLut8Type* = RECORD typeDescriptor*: Types.OSType; (* LONG("mft1") *) reserved*: LONGINT; (* fill with 0x00 *) inputChannels*: Types.SInt8; (* unsigned char *) (* *) outputChannels*: Types.SInt8; (* unsigned char *) (* *) gridPoints*: Types.SInt8; (* unsigned char *) (* *) reserved2*: Types.SInt8; (* unsigned char *) (* fill with 0x00 *) matrix*: ARRAY 3,3 (*ΔΔ[0..2,0..2]ΔΔ*) OF Types.Fixed; (* *) inputTable*: ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* fixed size of 256 *) CLUT*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) outputTable*: ARRAY 256 (*ΔΔ[0..255]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* fixed size of 256 *) END; CMMeasurementType* = RECORD typeDescriptor*: Types.OSType; (* LONG("meas") *) reserved*: LONGINT; (* fill with 0x00 *) standardObserver*: LONGINT; (* 0 : unknown, 1 : CIE 1931, 2 : CIE 1964 *) backingXYZ*: CMFixedXYZColor; (* absolute XYZ values of backing *) geometry*: LONGINT; (* 0 : unknown, 1 : 0/45 or 45/0, 2 :0/d or d/0 *) flare*: LONGINT; (* 0 : 0 , 1 : 100 flare *) illuminant*: LONGINT; (* standard illuminant *) END; CMNamedColorType* = RECORD typeDescriptor*: Types.OSType; (* LONG("ncol") *) reserved*: LONGINT; (* fill with 0x00 *) vendorFlag*: LONGINT; (* *) count*: LONGINT; (* count of named colors in array that follows *) prefixName*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size, max* = 32, to access fields after this one, have to count bytes *) suffixName*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size, max* = 32 *) colorName*: RECORD rootName*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size, max* = 32 *) colorCoords*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) END; (* Variable size *) END; CMTextDescriptionType* = RECORD typeDescriptor*: Types.OSType; (* LONG("desc") *) reserved*: LONGINT; (* fill with 0x00 *) ASCIICount*: LONGINT; (* the count of "bytes" *) ASCIIName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size, to access fields after this one, have to count bytes *) UniCodeCode*: LONGINT; UniCodeCount*: LONGINT; (* the count of characters, each character has two bytes *) UniCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) ScriptCodeCode*: INTEGER; ScriptCodeCount*: Types.SInt8; (* unsigned char *) (* the count of "bytes" *) ScriptCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) END; CMTextType* = RECORD typeDescriptor*: Types.OSType; (* LONG("text") *) reserved*: LONGINT; (* fill with 0x00 *) text*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* count of text is obtained from tag size element *) END; CMScreeningType* = RECORD typeDescriptor*: Types.OSType; (* LONG("scrn") *) reserved*: LONGINT; (* fill with 0x00 *) screeningFlag*: LONGINT; (* bit 0 : use printer default screens, bit 1 : inch/cm *) channelCount*: LONGINT; channelScreening*: RECORD frequency*: Types.Fixed; angle*: Types.Fixed; sportFunction*: LONGINT; END; (* Variable size *) END; CMSignatureType* = RECORD typeDescriptor*: Types.OSType; (* LONG("sig ") *) reserved*: LONGINT; (* fill with 0x00 *) signature*: Types.OSType; END; CMS15Fixed16ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("sf32") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.Fixed; (* Variable size *) END; CMU16Fixed16ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("uf32") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT; (* Variable size *) END; CMUInt16ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("ui16") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Variable size *) END; CMUInt32ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("ui32") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT; (* Variable size *) END; CMUInt64ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("ui64") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF LONGINT; (* Variable size (x2) *) END; CMUInt8ArrayType* = RECORD typeDescriptor*: Types.OSType; (* LONG("ui08") *) reserved*: LONGINT; (* fill with 0x00 *) value*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) END; CMViewingConditionsType* = RECORD typeDescriptor*: Types.OSType; (* LONG("view") *) reserved*: LONGINT; (* fill with 0x00 *) illuminant*: CMFixedXYZColor; (* absolute XYZs of illuminant in cd/mPOINTER TO 2 *) surround*: CMFixedXYZColor; (* absolute XYZs of surround in cd/mPOINTER TO 2 *) stdIlluminant*: LONGINT; (* see definitions of std illuminants *) END; CMXYZType* = RECORD typeDescriptor*: Types.OSType; (* LONG("XYZ ") *) reserved*: LONGINT; (* fill with 0x00 *) XYZ*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CMFixedXYZColor; (* variable size XYZ tristimulus values *) END; (* Profile sequence description type *) CMProfileSequenceDescType* = RECORD typeDescriptor*: Types.OSType; (* 'pseq ' *) reserved*: LONGINT; (* fill with 0x00 *) count*: LONGINT; (* Number of descriptions * variable size fields to follow, to access them, must count bytes *) profileDescription*: RECORD deviceMfg*: Types.OSType; (* Device Manufacturer *) deviceModel*: Types.OSType; (* Decvice Model *) attributes*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF LONGINT; (* Device attributes *) technology*: Types.OSType; (* Technology signature *) mfgDescASCIICount*: LONGINT; (* the count of "bytes" *) mfgDescASCIIName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) mfgDescUniCodeCode*: LONGINT; mfgDescUniCodeCount*: LONGINT; (* the count of characters, each character has two bytes *) mfgDescUniCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) mfgDescScriptCodeCode*: LONGINT; mfgDescScriptCodeCount*: LONGINT; (* the count of "bytes" *) mfgDescScriptCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) modelDescASCIICount*: LONGINT; (* the count of "bytes" *) modelDescASCIIName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) modelDescUniCodeCode*: LONGINT; modelDescUniCodeCount*: LONGINT; (* the count of characters, each character has two bytes *) modelDescUniCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) modelDescScriptCodeCode*: INTEGER; modelDescScriptCodeCount*: Types.SInt8; (* unsigned char *) (* the count of "bytes" *) modelDescScriptCodeName*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* Variable size *) END; END; (* Under color removal, black generation type *) CMUcrBgType* = RECORD typeDescriptor*: Types.OSType; (* 'bfd ' *) reserved*: LONGINT; (* fill with 0x00 *) ucrCount*: LONGINT; (* Number of UCR entries *) ucrValues*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* variable size *) bgCount*: LONGINT; (* Number of BG entries *) bgValues*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* variable size *) ucrbgASCII*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF Types.SInt8; (* unsigned char *) (* null terminated ASCII string *) END; CMIntentCRDVMSize* = RECORD renderingIntent*: LONGINT; (* rendering intent *) VMSize*: LONGINT; (* VM size taken up by the CRD *) END; CMPS2CRDVMSizeType* = RECORD typeDescriptor*: Types.OSType; (* LONG("psvm") *) reserved*: LONGINT; (* fill with 0x00 *) count*: LONGINT; (* number of intent entries *) intentCRD*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CMIntentCRDVMSize; (* variable size *) END; (************************************************************************) (*************** ColorSync 1.0 profile specification ********************) (************************************************************************) CONST cmGrayResponse* = 0; cmRedResponse* = 1; cmGreenResponse* = 2; cmBlueResponse* = 3; cmCyanResponse* = 4; cmMagentaResponse* = 5; cmYellowResponse* = 6; cmUcrResponse* = 7; cmBgResponse* = 8; cmOnePlusLastResponse* = 9; (* Device types *) cmMonitorDevice* = LONG("mntr"); cmScannerDevice* = LONG("scnr"); cmPrinterDevice* = LONG("prtr"); TYPE CMIString* = RECORD theScript*: Types.ScriptCode; theString*: Types.Str63; END; (* Profile options *) CONST cmPerceptualMatch* = $0000; (* Default. For photographic images *) cmColorimetricMatch* = $0001; (* Exact matching when possible *) cmSaturationMatch* = $0002; (* For solid colors *) (* Profile flags *) cmNativeMatchingPreferred* = $00000001; (* Default to native not preferred *) cmTurnOffCache* = $00000002; (* Default to turn on CMM cache *) TYPE CMMatchOption* = LONGINT; CMMatchFlag* = LONGINT; CMHeader* = RECORD size*: LONGINT; CMMType*: Types.OSType; applProfileVersion*: LONGINT; dataType*: Types.OSType; deviceType*: Types.OSType; deviceManufacturer*: Types.OSType; deviceModel*: LONGINT; deviceAttributes*: ARRAY 2 (*ΔΔ[0..1]ΔΔ*) OF LONGINT; profileNameOffset*: LONGINT; customDataOffset*: LONGINT; flags*: CMMatchFlag; options*: CMMatchOption; white*: CMXYZColor; black*: CMXYZColor; END; CMProfileChromaticities* = RECORD red*: CMXYZColor; green*: CMXYZColor; blue*: CMXYZColor; cyan*: CMXYZColor; magenta*: CMXYZColor; yellow*: CMXYZColor; END; CMProfileResponse* = RECORD counts*: ARRAY (*ΔΔ[0..*)cmOnePlusLastResponse(*ΔΔ -1]ΔΔ*) OF INTEGER; data*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF INTEGER; (* Variable size *) END; CMProfile* = RECORD header*: CMHeader; profile*: CMProfileChromaticities; response*: CMProfileResponse; profileName*: CMIString; customData*: ARRAY 1 (*ΔΔ[0..0]ΔΔ*) OF CHAR; (* Variable size *) END; CMProfilePtr* = POINTER TO CMProfile; CMProfileHandle* = HANDLE TO CMProfile (*ΔΔ POINTER TO CMProfilePtr*); (*$IF OLDROUTINENAMES *) CONST kCMApplProfileVersion* = cmCS1ProfileVersion; grayResponse* = cmGrayResponse; redResponse* = cmRedResponse; greenResponse* = cmGreenResponse; blueResponse* = cmBlueResponse; cyanResponse* = cmCyanResponse; magentaResponse* = cmMagentaResponse; yellowResponse* = cmYellowResponse; ucrResponse* = cmUcrResponse; bgResponse* = cmBgResponse; onePlusLastResponse* = cmOnePlusLastResponse; rgbData* = cmRGBData; cmykData* = cmCMYKData; grayData* = cmGrayData; xyzData* = cmXYZData; monitorDevice* = cmMonitorDevice; scannerDevice* = cmScannerDevice; printerDevice* = cmPrinterDevice; TYPE XYZComponent* = INTEGER; XYZColor* = CMXYZColor; CMResponseData* = INTEGER; IString* = CMIString; CMResponseColor* = LONGINT; responseColor* = CMResponseColor; (*$END*) (* $ALIGN RESET*) (* $POP*) END CMICCProfile.